using UnityEngine;
using UnityEngine.UI;
using UnityEditor;

namespace ZSW.Framework.EditorTools
{
    public class FontReplacer : EditorWindow
    {
        // 你需要在Editor窗口中指定一个字体文件
        public Font NewFont;

        // 这个属性会在Tools菜单中添加一个Font Replacer的菜单项
        [MenuItem("Tools/UGUI/Text Font Replacer")]
        private static void Invoke()
        {
            GetWindow<FontReplacer>("All UI Text Font Replacer").Show();
        }

        // 这个方法会绘制Editor窗口的界面
        void OnGUI()
        {
            Text[] m_allTextInScene = GameObject.FindObjectsOfType<Text>(true);
            // 创建一个对象字段，让你可以从Project窗口中拖拽一个字体文件到这个字段上
            NewFont = (Font)EditorGUILayout.ObjectField("Font File", NewFont, typeof(Font), false);
            // 创建一个按钮，当你点击它时，会调用Start方法
            if (GUILayout.Button("Replace All Texts"))
            {
                Undo.IncrementCurrentGroup();
                foreach (var text in m_allTextInScene)
                {
                    text.font = NewFont;
                }
                Undo.CollapseUndoOperations(0);
            }
        }
    }

}